#ifndef MYSQL_H
#define MYSQL_H
#include <QtSql/QSqlDatabase>
#include <QtSql/QSqlQuery>
#include <QtSql/QSqlError>
#include <QtSql/qsqlrecord.h>
#include <QVariant>
#include <QList>
#include <QHash>

class MySql
{
public:
    MySql();
    ~MySql();
    // 连接数据库
    bool connect(const QString &host, int port, const QString &user, const QString &password, const QString &database);
    // 关闭连接
    void disconnect();
    // 执行 SQL 查询
    bool query(const QString &sql);
    // 插入数据
    bool insert(const QString &tableName, const QHash<QString, QVariant> &data);
    // 批量插入数据
    bool batchInsert(const QString &tableName, const QStringList &columns, const QList<QList<QVariant>> &dataList);
    // 更新数据
    bool update(const QString &tableName, const QHash<QString, QVariant> &data, const QString &where);
    // 删除数据
    bool del(const QString &tableName, const QString &where);
    // 查询单条数据
    QHash<QString, QVariant> find(const QString &tableName, const QString &where = "");
    // 查询多条数据
    QList<QHash<QString, QVariant>> select(const QString &fields,const QString &tableName, const QString &where = "");
    // 获取错误信息
    QString lastError() const;

private:
    QSqlDatabase db;

};

#endif // MYSQL_H
